CosyOS-III API 用户参考手册  1.0.2
宏定义
互斥信号量

仅适用于在任务中对任务级公共资源的资源同步(互斥访问)。 更多...

互斥信号量 的协作图:

宏定义

#define uExternMut(mut)    sCSV_ExternMut(mut)
 声明互斥信号量 更多...
 
#define uCreateMut(mut)    sCSV_CreateMut(mut)
 创建互斥信号量 更多...
 
#define uTakeMut(mut, tc)   sUSV_TakeMut(mut, tc)
 获取互斥信号量 更多...
 
#define uBackMut(mut)    sUSV_BackMut(mut)
 归还互斥信号量 更多...
 

详细描述

仅适用于在任务中对任务级公共资源的资源同步(互斥访问)。

注解
有优先级继承/天花板机制,以抑制优先级反转的发生。
互斥信号量均支持嵌套使用,最大嵌套深度255,获取与归还必须配对使用。
如果任务中调用了获取互斥量,应谨慎操作该任务,如操作不当可能会导致获取相同互斥量的其它任务死锁。

宏定义说明

#define uBackMut (   mut)    sUSV_BackMut(mut)

归还互斥信号量

参数
[in]mut互斥信号量名称
返回

在文件 ur_api.h811 行定义.

#define uCreateMut (   mut)    sCSV_CreateMut(mut)

创建互斥信号量

参数
[in]mut互斥信号量名称
返回
警告
创建互斥信号量时,系统将自动赋初值,用户不可赋初值。

在文件 ur_api.h789 行定义.

#define uExternMut (   mut)    sCSV_ExternMut(mut)

声明互斥信号量

参数
[in]mut互斥信号量名称
返回

在文件 ur_api.h781 行定义.

#define uTakeMut (   mut,
  tc 
)    sUSV_TakeMut(mut, tc)

获取互斥信号量

参数
[in]mut互斥信号量名称
[in]tc滴答周期(超时时间)
+0:立即返回
~0:无限等待
返回
结果(bool)
返回值
false失败
true成功
警告
不支持在临界区中,包括任务临界区、服务层临界区、全局临界区,或关闭总中断时调用。
当tc为~0时(无限等待),仍建议用户查询返回值,原因是当在多个相同优先级的任务中
获取同一个互斥信号量时(采用时间片轮转调度),其返回结果仍然有失败的可能。

在文件 ur_api.h804 行定义.